<?php
/**
 * Base_App
 *
 * LICENSE
 *
 * This source file is subject to the new CC-GNU LGPL
 * It is available through the world-wide-web at this URL:
 * http://creativecommons.org/licenses/LGPL/2.1/
 *
 * @category   Base_App
 * @copyright  Copyright (c) 2009 Alexander fanatique* Thomas (me@alexander-thomas.net)
 * @license    http://creativecommons.org/licenses/LGPL/2.1/
 */
class ErrorController extends Zend_Controller_Action {
	/**
	 * Class constructor
	 *
	 * The request and response objects should be registered with the
	 * controller, as should be any additional optional arguments; these will be
	 * available via {@link getRequest()}, {@link getResponse()}, and
	 * {@link getInvokeArgs()}, respectively.
	 *
	 * When overriding the constructor, please consider this usage as a best
	 * practice and ensure that each is registered appropriately; the easiest
	 * way to do so is to simply call parent::__construct($request, $response,
	 * $invokeArgs).
	 *
	 * After the request, response, and invokeArgs are set, the
	 * {@link $_helper helper broker} is initialized.
	 *
	 * Finally, {@link init()} is called as the final action of
	 * instantiation, and may be safely overridden to perform initialization
	 * tasks; as a general rule, override {@link init()} instead of the
	 * constructor to customize an action controller's instantiation.
	 *
	 * @param Zend_Controller_Request_Abstract $request
	 * @param Zend_Controller_Response_Abstract $response
	 * @param array $invokeArgs Any additional invocation arguments
	 * @return void
	 */
	public function __construct(Zend_Controller_Request_Abstract $request, Zend_Controller_Response_Abstract $response, array $invokeArgs = array ()) {
		parent :: __construct($request, $response, $invokeArgs);
		$appPath = Zend_Registry::get('applicationPath');
		$this->_appConfig = Zend_Registry::get('applicationConfiguration');
		$this->view->baseUrl = $this->_appConfig->base->url;
		$this->view->pageTitle = $this->_appConfig->base->title;
		$module = $this->_getParam('module');
		$this->view->setScriptPath(array($appPath.'Views/Scripts/', $appPath.'Views/Scripts/'.strtolower($module).'/'));
		$this->view->setEncoding('utf-8');
		$this->view->addHelperPath($appPath.'Views/Helper/', 'My_View_Helper');
	}
	/**
	 * The Error Controller is called with the type of error as action name
	 * (i.e. www.example.com/error/type_of_error)
	 * This error type is matched against the error messages saved somewhere.
	 */
	public function __call($action, $lala) {
		$message = $this->_getParam('action');
		if($message == "index"){
			$message = "An error occured.";
		}

		Zend_Registry::get("log")->info('ErrorController with message: ' . $message);
		$this->view->errorHeader = $message; //will be $content->errorHeader[$action]
		$this->view->errorMessage = $message; //will be $content->errorMessages[$action]
		$this->render('error');		
	}
}
?>
